面向数智营销的 AI FAAS 解决方案
丨目录:
3. FAAS研发平台
4. DolphinSQL服务
5. 实时特征SQL化生产
6. 典型案例
7. 效果
8. 展望
9. 引用
▐ 背景
1. 迭代效率问题
开发成本高:场景多(至少50+的场景),服务多,每个服务都需要耗费大部分时间来搭建服务,申请机器资源;由于历史原因部分服务以C++来实现,开发和迭代成本高;
监控体系不健全:整个服务的监控运维体系不健全,算法同学没有时间来完善监控服务,导致服务出问题无法及时的发现;
运维成本高: 服务比较多,运维体系不健全,服务出现问题,排查困难,另外升级迭代成本高。
2. 核心算子复用性不足
核心算子耦合在业务逻辑中,无法实现各个业务场景快速。
3. 场景复杂,特征时效性低
广告主工具侧场景复杂,没有统一的实时特征生产流程,且目前模型使用的特征都是离线T+1,无法有效捕获到用户行为。
▐ AI FAAS解决方案
针对广告主工具算法侧的核心诉求,我们从三个方面提供了轻量级的解决方案;针对迭代效率问题,我们将C++开发为主的服务升级为以Java为主的云原生faas平台,从编码层面提升了迭代效率,并基于faas打造了一整套集成开发、灰度、监控、运维、实验、压测、日志检索、调试等流程的一站式AI FAAS研发平台,算法更专注业务逻辑的迭代,性能和工程链路问题交给工程同学。
核心算子复用性能力,我们将算法侧核心算子统一沉淀到到Dolphin插件中,统一以DolphinSQL服务化方式对外输出,实现了核心算子的统一,并基于极光平台支持算子的交互式分析,方便核心算子的多场景服务。
针对B端场景复杂,特征时效性问题,我们和算法同学一起梳理了特征工程链路,建立了基于埋点到特征生产的规范化接入流程,并基于SQL引擎实现了特征的SQL化生产,简化实时特征开发和探查。
▐ Faas研发平台
▐ DolphinSQL服务
模型预测探查
CREATE MODEL rtp_dolphin.dolphin_alime_ctr_v1_model
with (cm2_cluster = 'rtp_ads_internal',
zk_host = 'test',
zk_root = 'test',
biz = 'test',
out_fmt = 'xml',
debug = 'false',
attribute = '["test"]'
);
SELECT *
FROM rtp_dolphin.dolphin_alime_ctr_v1_model
WHERE
item_list IN (1000128836)
AND qinfo = '{}' AND context = '{"field_names":[], "docs":[] }';
向量化召回
select id, pm_squared_euclidean_distance(feature, '{0.1,0.1,0.1,0.1}') as distance
from feature_tb where cate_id in (1,3,12)
order by distance
asc limit 10;
组合优化
集成最优化计算函数库,支持用SQL来计算最优化/约束求解,如线性规划、整数规划、全局整数优化等能力
SELECT * FROM ( SOLVESELECT quality IN (SELECT * FROM
solve_db_test where
adgroup_id = 461628001 limit 200) as u
MAXIMIZE ( SELECT SUM(quality * trade) FROM u)
SUBJECTTO (SELECT SUM(ctr_threshold * quality * impression - quality * click) <= 0 FROM u),
(SELECT 0 <= quality <=1 FROM u),
(select SUM(quality) <= 20 FROM u) USING solverlp) AS s
where quality = 1;
▐ 实时特征SQL化生产
实时特征的定义和开发/查询
create table test_input
(
user_id String,
tool_id String,
label String,
behavior_time String
) with(
bizType='tt',
topic='test_input',
pk='user_id',
timeColumn='behavior_time'
);
-- 创建输出表
create table test_output (
user_id String,
tool_id String,
label String,
behavior_time String
) with (
bizType='feature',
pk='user_id'
);
insert into table test_output
select user_id,
concat_id(tool_id, behavior_time, 50) as tool_id,
concat_id(label, behavior_time, 50) as label,
concat_id(behavior_time, behavior_time, 50) as behavior_time
from test_input
group by user_id;
select user_id, tool_id from test_output where user_id in (
1234
);
▐ 典型案例
▐ 效果
迭代效率提升: 业务侧迭代效率从之前的1-2周降低到1-2天,新增服务可在1个小时内部署完成; 运维效率提升: 每个算法服务都可实时感知到核心业务指标,出现问题可实时报警;另外基于SLS以及回流日志可实时分析日志,及时发现问题; 算子复用: 核心算子的统一收口到DolphinSQL引擎中,也基于SQL服务化快速复用到其他业务场景; 实时特征的开发上线: 基于SQL的实时特征开发,从之前的1-2周特征开发,降低到1-2个小时可完成特征定义、开发和上线。
▐ 展望
接下来我们会持续优化产品体验和性能,希望AI FAAS解决方案能支撑更多算法业务, 为客户提供更好的广告主工具,让客户的每一份经营都算数。主要优化方向:
FAAS研发平台: 继续优化faas内核, 增强faas能力; 业务框架层支持更加易用的异步执行框架;
统一SQL能力: 支持物化SQL、向量化执行、丰富SQL特征生产算子等能力,提供性能更好、扩展性更好的统一SQL AI解决方案。
引用
[1] Function-As-A-Service https://cn.aliyun.com/analyst-reports/forrester-wave-function-as-a-service-platforms-q1-2021
[2] 函数计算 https://www.aliyun.com/product/fc
[3] Spring Cloud https://spring.io/projects/spring-cloud
[4] ODPS https://www.aliyun.com/product/odps
[5] 数据湖 https://www.aliyun.com/solution/doc/datalake
[6] Sunfire https://help.aliyun.com/apsara/agile/v_3_4_0_20200930/rdc/paas-product-introduction/what-is-sunfire.html
也许你还想看
欢迎关注「阿里妈妈技术」,了解更多~